package qc.common.core.enums.qms;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * QMS监测要素值数据类型枚举
 *
 * @author QuCheng Tech
 * @since 2025/9/29
 */
@Getter
@AllArgsConstructor
public enum QmsElementValueDataTypeEnum {
    UN_DEFINE(0, "未定义"),
    STRING(1, "字符串"),
    FLOAT(2, "小数"),
    INT(3, "整数"),
    ENUM(4, "枚举"),//固定的整数数值对应不同的状态
    BOOL(5, "布尔"),//取值0或1表示2种状态
    PICTURE(6, "图片"),//监测要素为图片
    VIDEO(7, "视频");//监测要素为视频

    @EnumValue
    private int index;
    private String name;

    @Override
    public String toString() {
        if (this != null)
            return this.name;

        return null;
    }

    /**
     * 根据数值获取枚举类型
     *
     * @param index 枚举索引值
     * @return QmsElementValueDataTypeEnum 对应的枚举类型
     */
    public static QmsElementValueDataTypeEnum getQmsElementValueDataTypeEnum(int index) {
        for (QmsElementValueDataTypeEnum item : QmsElementValueDataTypeEnum.values()) {
            if (item.getIndex() == index) {
                return item;
            }
        }
        // 默认返回UN_DEFINE枚举值
        return QmsElementValueDataTypeEnum.UN_DEFINE;
    }
}
